package dblog

import (
	"fmt"
	"github.com/gofiber/fiber/v2"
	"sg-backend/global"
	"sg-backend/model/user"
	"sg-backend/utils"
)

type deleteKey struct {
	Key []uint `json:"key"`
}

func DeleteLog(ctx *fiber.Ctx) error {
	// 权限验证
	utils.CheckPermsByTag("UserLogs", global.AuthUser.UserId, "delete")

	var delForm deleteKey
	if err := ctx.BodyParser(&delForm); err != nil {
		return ctx.JSON(fiber.Map{
			"status":  "error",
			"message": fmt.Sprintf("数据解释出错！%s", err),
		})
	}

	// 获取删除的菜单信息
	for _, v := range delForm.Key {
		delObj := user.Logs{Id: v}
		r := global.DB.First(&delObj)
		if r.Error != nil {
			return ctx.JSON(fiber.Map{
				"status":  "error",
				"message": fmt.Sprintf("传参错误！错误：%v", r.Error),
			})
		}

		// 执行删除
		d := global.DB.Delete(&delObj)
		if d.Error != nil {
			return ctx.JSON(fiber.Map{
				"status":  "error",
				"message": fmt.Sprintf("删除失败！错误：%v", r.Error),
			})
		}
	}

	return ctx.JSON(fiber.Map{
		"status":  "done",
		"message": "删除成功！",
	})
}
